#ifndef _PARSING_ERROR_EXCEPTION_H_
#define _PARSING_ERROR_EXCEPTION_H_

#include <exception>
#include <string>
#include "tinyxml.h"

using namespace std;

class ParsingErrorException : public exception {
public:
	ParsingErrorException(string _msg) : element(NULL), msg(_msg) {}
	ParsingErrorException(TiXmlElement *elem, string _msg) : element(elem), msg((string) elem->Value() + " > " + _msg) {}
	
	void concatTag(string tag) { msg = tag + " > " + msg; }
	void concatTag(TiXmlElement *elem) { msg = elem->Value() + (elem->Attribute("id") ? " id=\"" + (string) elem->Attribute("id") + "\"" : "") + " > " + msg; }
	string getMsg() { return msg; }
private:
	string msg;
	TiXmlElement *element;
};

#endif